package com.jyw.business.obstacles.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jyw.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.FieldNameConstants;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * 工单故障对象 obs_order_fault
 * 
 * @author system
 * @date 2023-08-10
 */
@Data
@TableName("obs_order_fault")
@ApiModel("工单故障实体")
@FieldNameConstants
public class ObsOrderFault
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @ApiModelProperty("主键")
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 工单号 */
    @ApiModelProperty("工单号")
    @Excel(name = "工单号")
    private String orderNum;

    /** 工单来源*/
    @ApiModelProperty("工单来源")
    @Excel(name = "工单来源")
    private Integer source;

    /** 指派类型:1由我处理，2派单 */
    @ApiModelProperty("指派类型:1由我处理，2派单")
    @Excel(name = "指派类型:1由我处理，2派单")
    private Integer sendType;

    /** 故障分类 */
    @ApiModelProperty("故障分类")
    @Excel(name = "故障分类")
    private String faultType;

    /** 故障描述 */
    @ApiModelProperty("故障描述")
    @Excel(name = "故障描述")
    private String faultRemark;

    /** 备注 */
    @ApiModelProperty("备注")
    private String remarks;

    /** 是否为特殊工单 */
    @ApiModelProperty("是否为特殊工单")
    private Integer specialOrder;

    /** 紧急程度 */
    @ApiModelProperty("紧急程度")
    @Excel(name = "紧急程度")
    private Integer degree;

    /** 影响范围 */
    @ApiModelProperty("影响范围")
    @Excel(name = "影响范围")
    private Integer rangeType;

    /** 响应类型 */
    @ApiModelProperty("响应类型")
    @Excel(name = "响应类型")
    private Integer responseType;

    @ApiModelProperty("预约时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date appointment;

    /** 预计工时 */
    @ApiModelProperty("预计工时")
    @Excel(name = "预计工时")
    private Integer reqTime;

    /** 知识库ID */
    @ApiModelProperty("知识库ID")
    @Excel(name = "知识库ID")
    private Long learningId;

    /** 附件 */
    @ApiModelProperty("附件")
    @Excel(name = "附件")
    private String enclosureId;

    /** 数据有效状态 */
    @ApiModelProperty("数据有效状态")
    @Excel(name = "数据有效状态")
    private Integer recordState;

    /** 当前状态 */
    @ApiModelProperty("当前状态")
    @Excel(name = "当前状态")
    private String currState;

    /** 上级工单号 */
    @ApiModelProperty("上级工单号")
    @Excel(name = "上级工单号")
    private String parentOrderNum;

    /**
     * 期望完成时间类型
     */
    @ApiModelProperty("期望完成时间类型")
    private Integer completeType;

    /** 期望完成时间 */
    @ApiModelProperty("期望完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "期望完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private LocalDateTime completeTime;

    /**
     * 催单数量
     */
    @ApiModelProperty("催单数量")
    private Long hurryCount;

    /** 创建人(创建人) */
    @ApiModelProperty("创建人(创建人)")
    @Excel(name = "创建人(创建人)")
    private Long createUser;

    /** 修改人(修改人) */
    @ApiModelProperty("修改人(修改人)")
    @Excel(name = "修改人(修改人)")
    private Long updateUser;

    /** 创建时间(创建时间) */
    @ApiModelProperty("创建时间(创建时间)")
    private Date createTime;

    /** 修改时间(修改时间) */
    @ApiModelProperty("修改时间(修改时间)")
    private Date updateTime;

    /** 实际报修地址 */
    @ApiModelProperty("实际报修地址")
    @Excel(name = "实际报修地址")
    private Long actualRepairPlace;

    /** 故障设备 */
    @ApiModelProperty("故障设备")
    @Excel(name = "故障设备")
    private String equipment;

    /** 故障设备位置 */
    @ApiModelProperty("故障设备位置")
    @Excel(name = "故障设备位置")
    private String equipmentAddress;

    /** 故障设备位置id */
    @ApiModelProperty("故障设备位置id")
    @Excel(name = "故障设备位置id")
    private Long equipmentAddressId;

    /** 资产标识(系统资产) */
    @ApiModelProperty("资产标识(系统资产)")
    @Excel(name = "资产标识(系统资产)")
    private Long assetsId;

    @ApiModelProperty("协作附件")
    private String assistEnclosureId;

    @ApiModelProperty("协作事务")
    private String assistContent;

}
